package br.ucb.ProjetoFinal.view;

import br.ucb.ProjetoFinal.bean.ApresentacaoEmpreendimento;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/*
 * Managed bean responsavel pelo caso de uso MANTER EMPREENDIMENTO
 */
@ManagedBean(name="managedRelatorio")
@SessionScoped
public class ManagedRelatorios {

//////////////////////////////////ATRIBUTOS/////////////////////////////////////

    //Usado tanto no cadastro quanto nas consultas, para armazenar o valor dos campos
    private ApresentacaoEmpreendimento empreendimento;
    //Esta LIST receberá os vários empreendimentos cadastrados, na hora da pesquisa
    private List<ApresentacaoEmpreendimento> empreendimentos;
    //Usado na CONSULTA
    private String numRadioPesquisa;
    //Usado para indicar pesquisa sem resultados
    private Boolean semResults;

////////////////////////////////////////////////////////////////////////////////

    public ManagedRelatorios() {
        //Seta o valor inicial para os radio-buttons na pagina da consulta
        setNumRadioPesquisa("cod");
        setEmpreendimento(new ApresentacaoEmpreendimento());
    }

    //METODO USADO PARA O CADASTRO DOS EMPREENDIMENTOS//////////////////////////
        public String submeter(){
            getEmpreendimento().filtraApf();

            return "result";
        }
    // FIM DO METODO////////////////////////////////////////////////////////////


    // METODO USADO PARA PESQUISA DE EMPREENDIMENTOS////////////////////////////
        public String procurar(){

            //setEmpreendimentos(escolhe.pesquisaEmpreendimentos(getNumRadioPesquisa(),getEmpreendimento()));

            //Se o array estiver vazio, significa que não foram encontrados resultados
            if(getEmpreendimentos().isEmpty())
                setSemResults(true);
            else
                setSemResults(false);

            return "procurarEmpr";
        }
    // FIM DO METODO////////////////////////////////////////////////////////////


    // METODO USADO PARA DETALHAR UM EMPREENDIMENTO/////////////////////////////
        public String detalhar(){
            String index = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("index");
            setEmpreendimento(getEmpreendimentos().get(Integer.parseInt(index)));

            return "result";
        }
    // FIM DO METODO////////////////////////////////////////////////////////////


    //FUNÇÕES USADAS PARA, RESPECTIVAMENTE, IR PARA A PAGINA DE CONSULTA AOS RELATORIOS E GERAR RELATORIO ESTATISTICO

        public String consultaRelatorios(){

            return "consultaRelatorio";
        }

        public String geraRelatorios(){

            return "geraRelatorio";
        }
    //FIM DAS FUNÇÕES///////////////////////////////////////////////////////////


//GETTERS & SETTERS/////////////////////////////////////////////////////////////
    public ApresentacaoEmpreendimento getEmpreendimento() {
        return empreendimento;
    }

    public void setEmpreendimento(ApresentacaoEmpreendimento empreendimento) {
        this.empreendimento = empreendimento;
    }

    public void setEmpreendimentos(List<ApresentacaoEmpreendimento> empreendimentos) {
        this.empreendimentos = empreendimentos;
    }

    public List<ApresentacaoEmpreendimento> getEmpreendimentos() {
        return empreendimentos;
    }

    public void setNumRadioPesquisa(String numRadioPesquisa) {
        this.numRadioPesquisa = numRadioPesquisa;
    }

    public String getNumRadioPesquisa() {
        return numRadioPesquisa;
    }

    public void setSemResults(Boolean semResults) {
        this.semResults = semResults;
    }

    public Boolean getSemResults() {
        return semResults;
    }

}
